package com.easylinkin.linkappapi.progress.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 进度计划信息
 * </p>
 *
 * @author zhengwen
 * @since 2023-11-13
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("app_progress_info")
public class ProgressInfo extends Model<ProgressInfo> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键，自增
     */
    @TableId(value = "id_", type = IdType.AUTO)
    private Long id;

    /**
     * 计划任务名称
     */
    @TableField("name_")
    private String name;

    /**
     * 租户id
     */
    @TableField("tenant_id_")
    private String tenantId;

    /**
     * 编码
     */
    @TableField("code_")
    private String code;

    /**
     * 开始时间
     */
    @TableField(value = "start_time_",updateStrategy = FieldStrategy.IGNORED)
    private Date startTime;

    /**
     * 结束时间
     */
    @TableField(value = "end_time_",updateStrategy = FieldStrategy.IGNORED)
    private Date endTime;

    /**
     * 工期
     */
    @TableField(value = "total_work_",updateStrategy = FieldStrategy.IGNORED)
    private Integer totalWork;

    /**
     * 类型，1计划，2任务
     */
    @TableField("type_")
    private Integer type;

    /**
     * 计划类型，1总计划，2期间计划，3月计划，4周计划
     */
    @TableField("plan_type_")
    private Integer planType;

    /**
     * 前置任务
     */
    @TableField("before_work_")
    private String beforeWork;

    /**
     * 关键节点，1是，2否
     */
    @TableField("point_")
    private Integer point;

    /**
     * 父级id
     */
    @TableField("parent_id_")
    private Long parentId;

    /**
     * 父级ids
     */
    @TableField("parent_ids_")
    private String parentIds;

    /**
     * 创建人
     */
    @TableField("creator_")
    private String creator;

    /**
     * 创建时间
     */
    @TableField("create_time_")
    private Date createTime;

    /**
     * 修改人
     */
    @TableField("modifier_")
    private String modifier;

    /**
     * 修改时间
     */
    @TableField("modify_time_")
    private Date modifyTime;

    /**
     * 是否删除，0否，1是
     */
    @TableField("deleted_")
    @TableLogic(value = "0", delval = "1")
    private Integer deleted;


    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
